<template>
    <van-nav-bar title="登录" />
    <van-form @submit="onSubmit">
        <van-cell-group inset>
            <van-field v-model="username" name="username" label="用户名" placeholder="用户名"
                :rules="[{ required: true, message: '请填写用户名' }]" />
            <van-cell-group inset>
                <van-field v-model="sms" center clearable label="短信验证码" placeholder="请输入短信验证码" style="width: 100%;">
                    <template #button>
                        <van-button size="small" type="primary" v-if="time==0" @click="trt">发送验证码</van-button>
                        <van-button size="small" type="primary" v-else disabled>倒计时{{time}}s</van-button>
                    </template>
                </van-field>
            </van-cell-group>
            <van-field v-model="password" type="password" name="password" label="密码" placeholder="密码"
                :rules="[{ required: true, message: '请填写密码' }]" />
        </van-cell-group>
        <div style="margin: 16px;">
            <van-button round block type="primary" native-type="submit" v-if="time==0">
                登录
            </van-button>
            <van-button round block type="primary" native-type="submit" v-else disabled="">
                登录
            </van-button>
        </div>
    </van-form>

</template>

<script setup>
import { ref } from 'vue';
import { loginApi } from '@/api/api';
import { useRoute, useRouter } from 'vue-router'
import { showToast } from 'vant';

const router = useRouter()
const route = useRoute()


const username = ref('');
const password = ref('');
const onSubmit = (values) => {
    console.log('submit', values);
    loginApi(username.value, password.value).then((res) => {
        if (res.data.code == 1) {
            localStorage.setItem('token', res.data.token)
            router.push('/home')
            showToast('登陆成功')
        } else {
            showToast(res.data.msg)
        }
    })
};

let time=ref(0)
let sms=ref('');

const trt=()=>{
    time.value=10;
    sms.value=Math.random().toString().slice(2,8)
    let times=setInterval(()=>{
        time.value--;
        clearInterval(times.value)
    },1000)
}

</script>

<style lang="scss" scoped></style>